#ifndef PHOTON_H
#define PHOTON_H

#include "src/math/vector3d.h"
#include "src/scene/energyColor.h"
#include <iostream>

struct Photon {
    Photon(const Vector3D & _pos = Vector3D(0,0,0), const Vector3D & _dir = Vector3D(0,0,0),
           const EnergyColor &_c = EnergyColor(1,1,1,1), unsigned short _f = 0)
        : position(_pos), direction(_dir), color(_c), flag(_f) {};
    ~Photon(){};

    void print() const {
        std::cout << "\n\tPosição: "; position.print();
        std::cout << "\tDireção: "; direction.print();
        std::cout << "\tCor: "; color.print();
        std::cout << "\tFLAG: " << flag << std::endl;
    };

    Vector3D position, direction;//, goingTo; //a direção é de onde veio
//    double tetha, phi; //direção
    EnergyColor color;
    unsigned short flag;
};

#endif
